gridpack::math::DAESolverT< T, I > Class Template Reference

A solver for systems differential algebraic equations (DAE). More...

#include <dae_solver.hpp>

Inheritance diagram for gridpack::math::DAESolverT< T, I >:
Inheritance graph
[legend]
Collaboration diagram for gridpack::math::DAESolverT< T, I >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef DAESolverInterface< T,
I >::VectorType 
VectorType
typedef DAESolverInterface< T,
I >::MatrixType 
MatrixType
typedef DAESolverInterface< T,
I >::JacobianBuilder 
JacobianBuilder
typedef DAESolverInterface< T,
I >::FunctionBuilder 
FunctionBuilder
typedef DAESolverInterface< T,
I >::StepFunction 
StepFunction

Public Member Functions

 DAESolverT (const parallel::Communicator &comm, const int local_size, JacobianBuilder &jbuilder, FunctionBuilder &fbuilder)
 Default constructor.
 ~DAESolverT (void)
 Destructor.
void initialize (const double &t0, const double &deltat0, VectorType &x0)
 Initialize the solver.
void solve (double &maxtime, int &maxsteps)
 Solve the system to when end_time or maxsteps is exceeded.

Detailed Description

template<typename T, typename I = int>
class gridpack::math::DAESolverT< T, I >

A solver for systems differential algebraic equations (DAE).


Member Typedef Documentation

template<typename T , typename I = int>
typedef DAESolverInterface<T, I>::FunctionBuilder gridpack::math::DAESolverT< T, I >::FunctionBuilder
template<typename T , typename I = int>
typedef DAESolverInterface<T, I>::JacobianBuilder gridpack::math::DAESolverT< T, I >::JacobianBuilder
template<typename T , typename I = int>
typedef DAESolverInterface<T, I>::MatrixType gridpack::math::DAESolverT< T, I >::MatrixType
template<typename T , typename I = int>
typedef DAESolverInterface<T, I>::StepFunction gridpack::math::DAESolverT< T, I >::StepFunction
template<typename T , typename I = int>
typedef DAESolverInterface<T, I>::VectorType gridpack::math::DAESolverT< T, I >::VectorType

Constructor & Destructor Documentation

template<typename T , typename I = int>
gridpack::math::DAESolverT< T, I >::DAESolverT ( const parallel::Communicator comm,
const int  local_size,
JacobianBuilder jbuilder,
FunctionBuilder fbuilder 
)

Default constructor.

Parameters:
comm parallel environment for this instance
local_size size of problem owned by this process (rows in Jacobian, elements in solution Vector)
jbuilder function/functor to build Jacobian
fbuilder function/functor to build function
Returns:
template<typename T , typename I = int>
gridpack::math::DAESolverT< T, I >::~DAESolverT ( void   ) 

Destructor.


Member Function Documentation

template<typename T , typename I = int>
void gridpack::math::DAESolverT< T, I >::initialize ( const double &  t0,
const double &  deltat0,
VectorType x0 
)

Initialize the solver.

Parameters:
t0 start time
deltat0 initial time step
x0 Vector to use for the solution, initially filled with values corresponding to t0

Reimplemented from gridpack::math::DAESolverInterface< T, I >.

template<typename T , typename I = int>
void gridpack::math::DAESolverT< T, I >::solve ( double &  maxtime,
int &  maxsteps 
)

Solve the system to when end_time or maxsteps is exceeded.

This solves the system from the initial time specified by initialize() or continues the solution from the end time of the previous call to solve(). After the solution completes, the solution is placed back in the Vector passed to initialize()

Parameters:
maxtime time at which solution is to end (in); actual time at which solution ended (out)
maxsteps maximum number of time steps to perform (in); actual number of time steps performed
solution system solution at maxtime (out)

Reimplemented from gridpack::math::DAESolverInterface< T, I >.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 3 Feb 2020 for GridPACK by  doxygen 1.6.1